<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title></title>
</head>
<body>
	<script type="text/javascript">
		//创建一个对象
		let zero = new Object();
		zero.name = '李四'
		zero.age = 11
		zero.sex = '女'
		
		
		//创建对个对象，希望有快捷方法---新的对象是从某个老对象拷贝出来的(对象的拷贝)
		let obj = {//内存地址
			name:'张三',
			age:22,
			sex:'男'
			
		}
		
		let obj2 = obj;//对象的浅拷贝,拷贝的是内存地址，类似于windows中快捷方式
		
		obj2.name = '王二麻子'
		console.log(obj.name)
		
		let obj3 =JSON.parse(JSON.stringify(obj));//stringify将json对象转化成json格式的字符串
		//parse 将json格式的字符串重新转化为json对象 //对象深拷贝方法之一
		
		obj3.name="横路精二"
		console.log(obj.name)
		
		//创建对个对象，希望有快捷方法---新的对象是从某个模板出来
			//工厂函数--对象模板
			function temp1(uname,uage){
				let info =Object()
				info.name=uname
				info.age=uage
				info.run=function(){
					console.log('xxxxxx')
				}
				return info
			}
			//工厂函数的使用
			let aa = temp1("蝙蝠侠",444)
			console.log(aa.name)
			let bb = temp1('美国对昂',1)
			console.log(bb.name)
			
			bb.run()
			
		//构造函数(类) ---对象模板
			//创建一个构造函数
			function Person(uname,usex){
				this.name=uname
				this.sex=usex
				this.say=function(){
					console.log('尊敬的'+uname+'用户你好，你的性别是'+usex)
				}
			}
			Person.prototype.info='群众' //向类中添加属性或方法
			//使用构造函数
			let cc=new Person('刘德华','男')
			let dd=new Person('张学友','男')
			console.log(cc.name)
			cc.say()
			dd.say()
			
			cc.age=180//对象属性
			console.log(dd.info)
			//类 class
			class demo {
				constructor(uname,uage) {
				    this.name=uname;
					this.age=uage
				}
				run(){
					return `你的名字${this.name},你的年龄${this.age}`
				}
			}
			let ee=new demo('易烊千玺',21)
			console.log(ee.name)
			
	</script>
	
	
	
</body>
</html>